#============================================
#知识点sys
# import sys
# sys.argv           #命令行参数List，第一个元素是程序本身路径
# 外部运行python3.8 run.py 1 2 3
# sys. argv获取的是解释器后参数值为一个列表，他是运行时直接加上参数
# print(sys.argv)
# src_ file=input( '源文件路径: ').strip()
# dst_ file=input('目标文件路径: ' ).strip()
# src_ file=sys. argv[1]
# dst_ file=sys. argv [2]
#判断
# 在执行下面程序

# 2、按照sys . path中存放的文件的顺序依次查找要导入的模块
#import sys
# print(sys.modules)  #查看以加载到内存的模块
# print(sys.path)    #查看环境
# sys.path.append("地址")   #找一个模块，就把这个模块的地址添加到环境变量中
#============================================
#进度条
import time
def jdt(res):
    if res >1:
        res = 1
    str = int(res*50)*"*"
    time.sleep(0.01)
    print("\r[{:<50}]{}%".format(str,int(res*100)),end="")  #\r 表示将光标的位置回退到本行的开头位置,加上end=""就可以实现进度条的样子


start = 0
end = 2131321
while start < end:
    start+=1024
    res = start/end
    jdt(res)

#===========================================
# 了解
# shutil.copyfileobj(fsrc, fdst[, length])
# 将文件内容拷贝到另一个文件中

# 1 import shutil
# 2  
# 3 shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))
 

# shutil.copyfile(src, dst)
# 拷贝文件

# 1 shutil.copyfile('f1.log', 'f2.log') #目标文件无需存在
 

# shutil.copymode(src, dst)
# 仅拷贝权限。内容、组、用户均不变

# 1 shutil.copymode('f1.log', 'f2.log') #目标文件必须存在
 

# shutil.copystat(src, dst)
# 仅拷贝状态的信息，包括：mode bits, atime, mtime, flags

# 1 shutil.copystat('f1.log', 'f2.log') #目标文件必须存在
 

# shutil.copy(src, dst)
# 拷贝文件和权限

# 1 import shutil
# 2  
# 3 shutil.copy('f1.log', 'f2.log')
 

# shutil.copy2(src, dst)
# 拷贝文件和状态信息

# 1 import shutil
# 2  
# 3 shutil.copy2('f1.log', 'f2.log')
 

# shutil.ignore_patterns(*patterns)
# shutil.copytree(src, dst, symlinks=False, ignore=None)
# 递归的去拷贝文件夹

# 1 import shutil
# 2  
# 3 shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*')) #目标目录不能存在，注意对folder2目录父级目录要有可写权限，ignore的意思是排除 
#  拷贝软连接
 

# shutil.rmtree(path[, ignore_errors[, onerror]])
# 递归的去删除文件

# 1 import shutil
# 2  
# 3 shutil.rmtree('folder1')
 

# shutil.move(src, dst)
# 递归的去移动文件，它类似mv命令，其实就是重命名。

# 1 import shutil
# 2  
# 3 shutil.move('folder1', 'folder3')
 

# shutil.make_archive(base_name, format,...)

# 创建压缩包并返回文件路径，例如：zip、tar

# 创建压缩包并返回文件路径，例如：zip、tar

# base_name： 压缩包的文件名，也可以是压缩包的路径。只是文件名时，则保存至当前目录，否则保存至指定路径，
# 如 data_bak                       =>保存至当前路径
# 如：/tmp/data_bak =>保存至/tmp/
# format：	压缩包种类，“zip”, “tar”, “bztar”，“gztar”
# root_dir：	要压缩的文件夹路径（默认当前目录）
# owner：	用户，默认当前用户
# group：	组，默认当前组
# logger：	用于记录日志，通常是logging.Logger对象
# 复制代码
# 1 #将 /data 下的文件打包放置当前程序目录
# 2 import shutil
# 3 ret = shutil.make_archive("data_bak", 'gztar', root_dir='/data')
# 4   
# 5   
# 6 #将 /data下的文件打包放置 /tmp/目录
# 7 import shutil
# 8 ret = shutil.make_archive("/tmp/data_bak", 'gztar', root_dir='/data') 
